package com.dyz.wsw.passport.service;

import com.dyz.wsw.common.consts.data.AccountConst;
import com.dyz.wsw.common.pojo.auth.Principal;
import com.dyz.wsw.common.web.JsonResult;
import com.dyz.wsw.passport.pojo.param.UserLoginInfoParam;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

/**
 * @author dyz
 * @date 2025/2/8 10:41
 */
public interface IUserService extends AccountConst {


    /**
     * 登录逻辑
     * @param loginInfo 登录表单信息
     * @param exchange 本次请求上下文
     * @return 登录处理结果
     */
    Mono<JsonResult> doLogin(UserLoginInfoParam loginInfo, ServerWebExchange exchange);


    /**
     * 用户登出
     * @param principal 当事人
     * @return 登出结果
     */
    Mono<JsonResult> doLogout(Principal principal);
}
